package com.example.demo.basics.arit;

/**
 * @author aqua
 * @description 红黑树   写不好
 *特点:  节点红黑
 * 两个节点不能红色不相连 黑色可以
 * 根节点都是黑色
 * 每个红色节点下面两个子节点都是黑色
 *
 * 变颜色：
 * 父节点和叔叔节点都是红色
 * 1.把父亲节点设置为黑色
 * 2.把叔叔节点设置为黑色
 * 3.把祖父设置红色
 * 4.把指针定义到祖父节点
 *
 * 左旋
 *当前父节点红色 叔叔黑色 且当前节点是右子树  以父节点为左旋
 *
 * 右旋
 * 父亲节点红色 叔叔黑色 且当前节点是左子树 以祖父节点为右旋
 * 1.把父亲节点变黑
 * 2.把祖父节点变红色
 * 3.以祖父为旋转点
 *
 *
 * 思路 先定义结构  红黑色颜色
 *
 * @date 2020年11月03 1:58
 * @email 1301584033@qq.com
 */
public class RedBlackTree {
    private static int B=0;
    private static int R=1;
    private Node root;

    class  Node {
        int data;
        int key;
        int color =B;
        Node left;
        Node right;
        Node parent;

        public Node(int data) {
            this.data = data;
        }
        public void insert(Node node){
            //插入的时候所有点变成红色
            node.color=R;
        }
        public void leftBosate(Node node){
            if(node.parent!=null){

            }else{
                //没有父节点表示根节点
                Node right=root.right;
                root.right=right.left;
                right.left.parent=root;
                root.parent=null;
                root=right;


            }

        }
    }
}
